<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>S110_nRF51822/Source/ble/ble_advdata.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css" />
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="alias.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="alias.js"></script>

<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>


<script type="text/javascript">
  jQuery(document).ready(function () {
    if(gref){ // Number all _img and _table classes
      gref();
    }
  });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->

<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">nRF51822 BLE SDK
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('ble__advdata_8c.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">S110_nRF51822/Source/ble/ble_advdata.c</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * The information contained herein is property of Nordic Semiconductor ASA.</span>
<a name="l00004"></a>00004 <span class="comment"> * Terms and conditions of usage are described in detail in NORDIC</span>
<a name="l00005"></a>00005 <span class="comment"> * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * Licensees are granted free, non-transferable use of the information. NO</span>
<a name="l00008"></a>00008 <span class="comment"> * WARRANTY of ANY KIND is provided. This heading must NOT be removed from</span>
<a name="l00009"></a>00009 <span class="comment"> * the file.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * $LastChangedRevision$</span>
<a name="l00012"></a>00012 <span class="comment"> */</span>
<a name="l00013"></a>00013 
<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;<a class="code" href="ble__advdata_8h.html">ble_advdata.h</a>&quot;</span>
<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;<a class="code" href="nordic__common_8h.html" title="Common defines and macros for firmware developed by Nordic Semiconductor.">nordic_common.h</a>&quot;</span>
<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;nrf_error.h&quot;</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include &quot;ble_gap.h&quot;</span>
<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;<a class="code" href="ble__srv__common_8h.html">ble_srv_common.h</a>&quot;</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;<a class="code" href="ble__sdk__util_8h.html">ble_sdk_util.h</a>&quot;</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &quot;<a class="code" href="ble__uuid__util_8h.html">ble_uuid_util.h</a>&quot;</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="comment">// NOTE: For now, Security Manager TK Value and Security Manager Out of Band Flags (OOB) are omitted</span>
<a name="l00024"></a>00024 <span class="comment">//       from the advertising data.</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="keyword">static</span> uint32_t name_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_advdata,
<a name="l00028"></a>00028                             uint8_t *             p_encoded_data,
<a name="l00029"></a>00029                             uint8_t *             p_len)
<a name="l00030"></a>00030 {
<a name="l00031"></a>00031     uint32_t err_code;
<a name="l00032"></a>00032     uint8_t  name_length = <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a> - (2 + *p_len);
<a name="l00033"></a>00033     uint8_t  adv_data_format;
<a name="l00034"></a>00034 
<a name="l00035"></a>00035     <span class="comment">// Get GAP device name</span>
<a name="l00036"></a>00036     err_code = <a class="code" href="group___b_l_e___g_a_p.html#gae257a1419d35e64dd029f29cd863ee84" title="Get GAP device name.">ble_gap_device_name_get</a>(&amp;p_encoded_data[*p_len + 2], &amp;name_length);
<a name="l00037"></a>00037     <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00038"></a>00038     {
<a name="l00039"></a>00039         <span class="keywordflow">return</span> err_code;
<a name="l00040"></a>00040     }
<a name="l00041"></a>00041 
<a name="l00042"></a>00042     <span class="comment">// Compute length and type of name field</span>
<a name="l00043"></a>00043     <span class="keywordflow">if</span> ((p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a93a9e972f6ad2a764fd0c3c3f259031c">short_name_len</a> != 0) &amp;&amp; (name_length &gt; p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a93a9e972f6ad2a764fd0c3c3f259031c">short_name_len</a>))
<a name="l00044"></a>00044     {
<a name="l00045"></a>00045         name_length     = p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a93a9e972f6ad2a764fd0c3c3f259031c">short_name_len</a>;
<a name="l00046"></a>00046         adv_data_format = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga2519c8afff0bc77341083d2e19d4df78">BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME</a>;
<a name="l00047"></a>00047     }
<a name="l00048"></a>00048     <span class="keywordflow">else</span>
<a name="l00049"></a>00049     {
<a name="l00050"></a>00050         adv_data_format = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gad18f5d40038aab7e5361e838799fbfd9">BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME</a>;
<a name="l00051"></a>00051     }
<a name="l00052"></a>00052     
<a name="l00053"></a>00053     <span class="comment">// Complete name field in encoded data</span>
<a name="l00054"></a>00054     p_encoded_data[(*p_len)++] = name_length + 1;
<a name="l00055"></a>00055     p_encoded_data[(*p_len)++] = adv_data_format;
<a name="l00056"></a>00056     (*p_len) += name_length;
<a name="l00057"></a>00057     
<a name="l00058"></a>00058     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00059"></a>00059 }
<a name="l00060"></a>00060 
<a name="l00061"></a>00061 
<a name="l00062"></a>00062 <span class="keyword">static</span> uint32_t appearance_encode(uint8_t * p_encoded_data, uint8_t * p_len)
<a name="l00063"></a>00063 {
<a name="l00064"></a>00064     uint32_t err_code;
<a name="l00065"></a>00065     uint16_t appearance;
<a name="l00066"></a>00066 
<a name="l00067"></a>00067     <span class="comment">// Check for buffer overflow</span>
<a name="l00068"></a>00068     <span class="keywordflow">if</span> ((*p_len) + 4 &gt; <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>)
<a name="l00069"></a>00069     {
<a name="l00070"></a>00070         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga4c61f2b54667506e90cc296721b2e658" title="Data size exceeds limit.">NRF_ERROR_DATA_SIZE</a>;
<a name="l00071"></a>00071     }
<a name="l00072"></a>00072 
<a name="l00073"></a>00073     <span class="comment">// Get GAP appearance field</span>
<a name="l00074"></a>00074     err_code = <a class="code" href="group___b_l_e___g_a_p.html#ga29a7e84cb12d20e01e99d99ed1d3b5d1" title="Get GAP Appearance field.">ble_gap_appearance_get</a>(&amp;appearance);
<a name="l00075"></a>00075     <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00076"></a>00076     {
<a name="l00077"></a>00077         <span class="keywordflow">return</span> err_code;
<a name="l00078"></a>00078     }
<a name="l00079"></a>00079     
<a name="l00080"></a>00080     <span class="comment">// Encode Length, AD Type and Appearance</span>
<a name="l00081"></a>00081     p_encoded_data[(*p_len)++] = 3;
<a name="l00082"></a>00082     p_encoded_data[(*p_len)++] = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga44bd5cad43c8a8c470361df0bdff0a04">BLE_GAP_AD_TYPE_APPEARANCE</a>;
<a name="l00083"></a>00083 
<a name="l00084"></a>00084     (*p_len) += <a class="code" href="group__ble__sdk__lib__util.html#gab58c28346b89382397aa7a716bf9a178" title="Inline function for encoding a uint16 value.">uint16_encode</a>(appearance, &amp;p_encoded_data[*p_len]);
<a name="l00085"></a>00085     
<a name="l00086"></a>00086     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00087"></a>00087 }
<a name="l00088"></a>00088 
<a name="l00089"></a>00089 
<a name="l00090"></a>00090 <span class="keyword">static</span> uint32_t uint8_array_encode(<span class="keyword">const</span> <a class="code" href="structuint8__array__t.html" title="Byte array type.">uint8_array_t</a> * p_uint8_array,
<a name="l00091"></a>00091                                    uint8_t               adv_type,
<a name="l00092"></a>00092                                    uint8_t *             p_encoded_data,
<a name="l00093"></a>00093                                    uint8_t *             p_len)
<a name="l00094"></a>00094 {
<a name="l00095"></a>00095     <span class="comment">// Check parameter consistency</span>
<a name="l00096"></a>00096     <span class="keywordflow">if</span> (p_uint8_array-&gt;<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a> == NULL)
<a name="l00097"></a>00097     {
<a name="l00098"></a>00098         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00099"></a>00099     }
<a name="l00100"></a>00100 
<a name="l00101"></a>00101     <span class="comment">// Check for buffer overflow</span>
<a name="l00102"></a>00102     <span class="keywordflow">if</span> ((*p_len) + 2 + p_uint8_array-&gt;<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a> &gt; <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>)
<a name="l00103"></a>00103     {
<a name="l00104"></a>00104         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga4c61f2b54667506e90cc296721b2e658" title="Data size exceeds limit.">NRF_ERROR_DATA_SIZE</a>;
<a name="l00105"></a>00105     }
<a name="l00106"></a>00106 
<a name="l00107"></a>00107     <span class="comment">// Encode Length and AD Type</span>
<a name="l00108"></a>00108     p_encoded_data[(*p_len)++] = 1 + p_uint8_array-&gt;<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>;
<a name="l00109"></a>00109     p_encoded_data[(*p_len)++] = adv_type;
<a name="l00110"></a>00110     
<a name="l00111"></a>00111     <span class="comment">// Encode array</span>
<a name="l00112"></a>00112     memcpy(&amp;p_encoded_data[*p_len], p_uint8_array-&gt;<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a>, p_uint8_array-&gt;<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>);
<a name="l00113"></a>00113     (*p_len) += p_uint8_array-&gt;<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>;
<a name="l00114"></a>00114     
<a name="l00115"></a>00115     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00116"></a>00116 }
<a name="l00117"></a>00117 
<a name="l00118"></a>00118 
<a name="l00119"></a>00119 <span class="keyword">static</span> uint32_t tx_power_level_encode(int8_t    tx_power_level,
<a name="l00120"></a>00120                                       uint8_t * p_encoded_data,
<a name="l00121"></a>00121                                       uint8_t * p_len)
<a name="l00122"></a>00122 {
<a name="l00123"></a>00123     <span class="comment">// Check for buffer overflow</span>
<a name="l00124"></a>00124     <span class="keywordflow">if</span> ((*p_len) + 3 &gt; <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>)
<a name="l00125"></a>00125     {
<a name="l00126"></a>00126         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga4c61f2b54667506e90cc296721b2e658" title="Data size exceeds limit.">NRF_ERROR_DATA_SIZE</a>;
<a name="l00127"></a>00127     }
<a name="l00128"></a>00128 
<a name="l00129"></a>00129     <span class="comment">// Encode TX Power Level</span>
<a name="l00130"></a>00130     p_encoded_data[(*p_len)++] = 2;
<a name="l00131"></a>00131     p_encoded_data[(*p_len)++] = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gad6b6e3a9e22b85c65a6dcca19bea561f">BLE_GAP_AD_TYPE_TX_POWER_LEVEL</a>;
<a name="l00132"></a>00132     p_encoded_data[(*p_len)++] = (uint8_t)tx_power_level;
<a name="l00133"></a>00133     
<a name="l00134"></a>00134     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00135"></a>00135 }
<a name="l00136"></a>00136 
<a name="l00137"></a>00137 
<a name="l00138"></a>00138 <span class="keyword">static</span> uint32_t uuid_list_sized_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__uuid__list__t.html" title="UUID list type.">ble_advdata_uuid_list_t</a> * p_uuid_list,
<a name="l00139"></a>00139                                        uint8_t                         adv_type,
<a name="l00140"></a>00140                                        uint8_t                         uuid_size,
<a name="l00141"></a>00141                                        uint8_t *                       p_encoded_data,
<a name="l00142"></a>00142                                        uint8_t *                       p_len)
<a name="l00143"></a>00143 {
<a name="l00144"></a>00144     <span class="keywordtype">int</span>     i;
<a name="l00145"></a>00145     <span class="keywordtype">bool</span>    is_heading_written = <span class="keyword">false</span>;
<a name="l00146"></a>00146     uint8_t start_pos = *p_len;
<a name="l00147"></a>00147     
<a name="l00148"></a>00148     <span class="keywordflow">for</span> (i = 0; i &lt; p_uuid_list-&gt;<a class="code" href="structble__advdata__uuid__list__t.html#a1cecc52d144b939f33a67c1d68363e99">uuid_cnt</a>; i++)
<a name="l00149"></a>00149     {
<a name="l00150"></a>00150         uint32_t   err_code;
<a name="l00151"></a>00151         uint8_t    encoded_size;
<a name="l00152"></a>00152         <a class="code" href="structble__uuid__t.html" title="Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs.">ble_uuid_t</a> uuid = p_uuid_list-&gt;<a class="code" href="structble__advdata__uuid__list__t.html#a100265d2ed10e66a76e53cba205dc8a3">p_uuids</a>[i];
<a name="l00153"></a>00153         
<a name="l00154"></a>00154         <span class="comment">// Find size</span>
<a name="l00155"></a>00155         err_code = <a class="code" href="group__ble__sdk__lib__uuid.html#ga8af3492a4ce7d3db30915dbcbd8e83b9" title="Encode the uuid_t structure into Little-Endian UUID bytes (16-bit or 128-bit).">ble_uuid_encode</a>(&amp;uuid, &amp;encoded_size, NULL);
<a name="l00156"></a>00156         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00157"></a>00157         {
<a name="l00158"></a>00158             <span class="keywordflow">return</span> err_code;
<a name="l00159"></a>00159         }
<a name="l00160"></a>00160         
<a name="l00161"></a>00161         <span class="comment">// Check size</span>
<a name="l00162"></a>00162         <span class="keywordflow">if</span> (encoded_size == uuid_size)
<a name="l00163"></a>00163         {
<a name="l00164"></a>00164             uint8_t heading_bytes = (is_heading_written) ? 0 : 2;
<a name="l00165"></a>00165             
<a name="l00166"></a>00166             <span class="comment">// Check for buffer overflow</span>
<a name="l00167"></a>00167             <span class="keywordflow">if</span> (*p_len + encoded_size + heading_bytes &gt; <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>)
<a name="l00168"></a>00168             {
<a name="l00169"></a>00169                 <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga4c61f2b54667506e90cc296721b2e658" title="Data size exceeds limit.">NRF_ERROR_DATA_SIZE</a>;
<a name="l00170"></a>00170             }
<a name="l00171"></a>00171             
<a name="l00172"></a>00172             <span class="keywordflow">if</span> (!is_heading_written)
<a name="l00173"></a>00173             {
<a name="l00174"></a>00174                 <span class="comment">// Write AD structure heading</span>
<a name="l00175"></a>00175                 (*p_len)++;
<a name="l00176"></a>00176                 p_encoded_data[(*p_len)++] = adv_type;
<a name="l00177"></a>00177                 is_heading_written = <span class="keyword">true</span>;
<a name="l00178"></a>00178             }
<a name="l00179"></a>00179             
<a name="l00180"></a>00180             <span class="comment">// Write UUID</span>
<a name="l00181"></a>00181             err_code = <a class="code" href="group__ble__sdk__lib__uuid.html#ga8af3492a4ce7d3db30915dbcbd8e83b9" title="Encode the uuid_t structure into Little-Endian UUID bytes (16-bit or 128-bit).">ble_uuid_encode</a>(&amp;uuid, &amp;encoded_size, &amp;p_encoded_data[*p_len]);
<a name="l00182"></a>00182             <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00183"></a>00183             {
<a name="l00184"></a>00184                 <span class="keywordflow">return</span> err_code;
<a name="l00185"></a>00185             }
<a name="l00186"></a>00186             (*p_len) += encoded_size;
<a name="l00187"></a>00187         }
<a name="l00188"></a>00188     }
<a name="l00189"></a>00189     
<a name="l00190"></a>00190     <span class="keywordflow">if</span> (is_heading_written)
<a name="l00191"></a>00191     {
<a name="l00192"></a>00192         <span class="comment">// Write length</span>
<a name="l00193"></a>00193         p_encoded_data[start_pos] = (*p_len) - (start_pos + 1);
<a name="l00194"></a>00194     }
<a name="l00195"></a>00195     
<a name="l00196"></a>00196     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00197"></a>00197 }
<a name="l00198"></a>00198 
<a name="l00199"></a>00199 
<a name="l00200"></a>00200 <span class="keyword">static</span> uint32_t uuid_list_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__uuid__list__t.html" title="UUID list type.">ble_advdata_uuid_list_t</a> * p_uuid_list,
<a name="l00201"></a>00201                                  uint8_t                         adv_type_16,
<a name="l00202"></a>00202                                  uint8_t                         adv_type_128,
<a name="l00203"></a>00203                                  uint8_t *                       p_encoded_data,
<a name="l00204"></a>00204                                  uint8_t *                       p_len)
<a name="l00205"></a>00205 {
<a name="l00206"></a>00206     uint32_t err_code;
<a name="l00207"></a>00207     
<a name="l00208"></a>00208     <span class="comment">// Encode 16 bit UUIDs</span>
<a name="l00209"></a>00209     err_code = uuid_list_sized_encode(p_uuid_list,
<a name="l00210"></a>00210                                       adv_type_16,
<a name="l00211"></a>00211                                       <span class="keyword">sizeof</span>(<a class="code" href="group__ble__sdk__lib__util.html#gaa6f104ea023a4a6a56ef05f30b0cfdc3" title="type for holding an encoded (i.e. little endian) 16 bit unsigned integer.">uint16_le_t</a>),
<a name="l00212"></a>00212                                       p_encoded_data,
<a name="l00213"></a>00213                                       p_len);
<a name="l00214"></a>00214     <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00215"></a>00215     {
<a name="l00216"></a>00216         <span class="keywordflow">return</span> err_code;
<a name="l00217"></a>00217     }
<a name="l00218"></a>00218     
<a name="l00219"></a>00219     <span class="comment">// Encode 128 bit UUIDs</span>
<a name="l00220"></a>00220     err_code = uuid_list_sized_encode(p_uuid_list,
<a name="l00221"></a>00221                                       adv_type_128,
<a name="l00222"></a>00222                                       <span class="keyword">sizeof</span>(<a class="code" href="structble__uuid128__t.html" title="128 bit UUID values.">ble_uuid128_t</a>),
<a name="l00223"></a>00223                                       p_encoded_data,
<a name="l00224"></a>00224                                       p_len);
<a name="l00225"></a>00225     <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00226"></a>00226     {
<a name="l00227"></a>00227         <span class="keywordflow">return</span> err_code;
<a name="l00228"></a>00228     }
<a name="l00229"></a>00229     
<a name="l00230"></a>00230     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00231"></a>00231 }
<a name="l00232"></a>00232 
<a name="l00233"></a>00233 
<a name="l00234"></a>00234 <span class="keyword">static</span> uint32_t conn_int_check(<span class="keyword">const</span> <a class="code" href="structble__advdata__conn__int__t.html" title="Connection interval range structure.">ble_advdata_conn_int_t</a> *p_conn_int)
<a name="l00235"></a>00235 {
<a name="l00236"></a>00236     <span class="comment">// Check Minimum Connection Interval</span>
<a name="l00237"></a>00237     <span class="keywordflow">if</span> (
<a name="l00238"></a>00238         (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#ac927a642ee2203f875fcce1eabb5fa64">min_conn_interval</a> &lt; 0x0006)
<a name="l00239"></a>00239         ||
<a name="l00240"></a>00240         (
<a name="l00241"></a>00241             (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#ac927a642ee2203f875fcce1eabb5fa64">min_conn_interval</a> &gt; 0x0c80)
<a name="l00242"></a>00242             &amp;&amp;
<a name="l00243"></a>00243             (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#ac927a642ee2203f875fcce1eabb5fa64">min_conn_interval</a> != 0xffff)
<a name="l00244"></a>00244         )
<a name="l00245"></a>00245     )
<a name="l00246"></a>00246     {
<a name="l00247"></a>00247         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00248"></a>00248     }
<a name="l00249"></a>00249 
<a name="l00250"></a>00250     <span class="comment">// Check Maximum Connection Interval</span>
<a name="l00251"></a>00251     <span class="keywordflow">if</span> (
<a name="l00252"></a>00252         (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#a0aec1884f340406a5194b772da017d7b">max_conn_interval</a> &lt; 0x0006)
<a name="l00253"></a>00253         ||
<a name="l00254"></a>00254         (
<a name="l00255"></a>00255             (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#a0aec1884f340406a5194b772da017d7b">max_conn_interval</a> &gt; 0x0c80)
<a name="l00256"></a>00256             &amp;&amp;
<a name="l00257"></a>00257             (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#a0aec1884f340406a5194b772da017d7b">max_conn_interval</a> != 0xffff)
<a name="l00258"></a>00258         )
<a name="l00259"></a>00259     )
<a name="l00260"></a>00260     {
<a name="l00261"></a>00261         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00262"></a>00262     }
<a name="l00263"></a>00263 
<a name="l00264"></a>00264     <span class="comment">// Make sure Minimum Connection Interval is not bigger than Maximum Connection Interval</span>
<a name="l00265"></a>00265     <span class="keywordflow">if</span> (
<a name="l00266"></a>00266         (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#ac927a642ee2203f875fcce1eabb5fa64">min_conn_interval</a> != 0xffff)
<a name="l00267"></a>00267         &amp;&amp;
<a name="l00268"></a>00268         (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#a0aec1884f340406a5194b772da017d7b">max_conn_interval</a> != 0xffff)
<a name="l00269"></a>00269         &amp;&amp;
<a name="l00270"></a>00270         (p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#ac927a642ee2203f875fcce1eabb5fa64">min_conn_interval</a> &gt; p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#a0aec1884f340406a5194b772da017d7b">max_conn_interval</a>)
<a name="l00271"></a>00271     )
<a name="l00272"></a>00272     {
<a name="l00273"></a>00273         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00274"></a>00274     }
<a name="l00275"></a>00275     
<a name="l00276"></a>00276     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00277"></a>00277 }
<a name="l00278"></a>00278 
<a name="l00279"></a>00279 
<a name="l00280"></a>00280 <span class="keyword">static</span> uint32_t conn_int_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__conn__int__t.html" title="Connection interval range structure.">ble_advdata_conn_int_t</a> * p_conn_int,
<a name="l00281"></a>00281                                 uint8_t *                      p_encoded_data,
<a name="l00282"></a>00282                                 uint8_t *                      p_len)
<a name="l00283"></a>00283 {
<a name="l00284"></a>00284     uint32_t err_code;
<a name="l00285"></a>00285 
<a name="l00286"></a>00286     <span class="comment">// Check for buffer overflow</span>
<a name="l00287"></a>00287     <span class="keywordflow">if</span> ((*p_len) + 2 + 2 * <span class="keyword">sizeof</span>(<a class="code" href="group__ble__sdk__lib__util.html#gaa6f104ea023a4a6a56ef05f30b0cfdc3" title="type for holding an encoded (i.e. little endian) 16 bit unsigned integer.">uint16_le_t</a>) &gt; <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>)
<a name="l00288"></a>00288     {
<a name="l00289"></a>00289         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga4c61f2b54667506e90cc296721b2e658" title="Data size exceeds limit.">NRF_ERROR_DATA_SIZE</a>;
<a name="l00290"></a>00290     }
<a name="l00291"></a>00291     
<a name="l00292"></a>00292     <span class="comment">// Check parameters</span>
<a name="l00293"></a>00293     err_code = conn_int_check(p_conn_int);
<a name="l00294"></a>00294     <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00295"></a>00295     {
<a name="l00296"></a>00296         <span class="keywordflow">return</span> err_code;
<a name="l00297"></a>00297     }
<a name="l00298"></a>00298     
<a name="l00299"></a>00299     <span class="comment">// Encode Length and AD Type</span>
<a name="l00300"></a>00300     p_encoded_data[(*p_len)++] = 1 + 2 * <span class="keyword">sizeof</span>(<a class="code" href="group__ble__sdk__lib__util.html#gaa6f104ea023a4a6a56ef05f30b0cfdc3" title="type for holding an encoded (i.e. little endian) 16 bit unsigned integer.">uint16_le_t</a>);
<a name="l00301"></a>00301     p_encoded_data[(*p_len)++] = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gaf7738c9995e4110068c9ff6ba56b9f23">BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE</a>;
<a name="l00302"></a>00302     
<a name="l00303"></a>00303     <span class="comment">// Encode Minimum and Maximum Connection Intervals</span>
<a name="l00304"></a>00304     (*p_len) += <a class="code" href="group__ble__sdk__lib__util.html#gab58c28346b89382397aa7a716bf9a178" title="Inline function for encoding a uint16 value.">uint16_encode</a>(p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#ac927a642ee2203f875fcce1eabb5fa64">min_conn_interval</a>, &amp;p_encoded_data[*p_len]);
<a name="l00305"></a>00305     (*p_len) += <a class="code" href="group__ble__sdk__lib__util.html#gab58c28346b89382397aa7a716bf9a178" title="Inline function for encoding a uint16 value.">uint16_encode</a>(p_conn_int-&gt;<a class="code" href="structble__advdata__conn__int__t.html#a0aec1884f340406a5194b772da017d7b">max_conn_interval</a>, &amp;p_encoded_data[*p_len]);
<a name="l00306"></a>00306     
<a name="l00307"></a>00307     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00308"></a>00308 }
<a name="l00309"></a>00309 
<a name="l00310"></a>00310 
<a name="l00311"></a>00311 <span class="keyword">static</span> uint32_t manuf_specific_data_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__manuf__data__t.html" title="Manufacturer specific data structure.">ble_advdata_manuf_data_t</a> * p_manuf_sp_data,
<a name="l00312"></a>00312                                            uint8_t *                        p_encoded_data,
<a name="l00313"></a>00313                                            uint8_t *                        p_len)
<a name="l00314"></a>00314 {
<a name="l00315"></a>00315     uint8_t data_size = <span class="keyword">sizeof</span>(<a class="code" href="group__ble__sdk__lib__util.html#gaa6f104ea023a4a6a56ef05f30b0cfdc3" title="type for holding an encoded (i.e. little endian) 16 bit unsigned integer.">uint16_le_t</a>) + p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>;
<a name="l00316"></a>00316     
<a name="l00317"></a>00317     <span class="comment">// Check for buffer overflow</span>
<a name="l00318"></a>00318     if ((*p_len) + 2 + data_size &gt; <a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>)
<a name="l00319"></a>00319     {
<a name="l00320"></a>00320         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga4c61f2b54667506e90cc296721b2e658" title="Data size exceeds limit.">NRF_ERROR_DATA_SIZE</a>;
<a name="l00321"></a>00321     }
<a name="l00322"></a>00322 
<a name="l00323"></a>00323     <span class="comment">// Encode Length and AD Type</span>
<a name="l00324"></a>00324     p_encoded_data[(*p_len)++] = 1 + data_size;
<a name="l00325"></a>00325     p_encoded_data[(*p_len)++] = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga3c8bb673d4749edc0e5a0d5aa9aa67e1">BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA</a>;
<a name="l00326"></a>00326     
<a name="l00327"></a>00327     <span class="comment">// Encode Company Identifier</span>
<a name="l00328"></a>00328     (*p_len) += <a class="code" href="group__ble__sdk__lib__util.html#gab58c28346b89382397aa7a716bf9a178" title="Inline function for encoding a uint16 value.">uint16_encode</a>(p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a183f3142ec5095963ab0ddb58d90a49c">company_identifier</a>, &amp;p_encoded_data[*p_len]);
<a name="l00329"></a>00329     
<a name="l00330"></a>00330     <span class="comment">// Encode additional manufacturer specific data</span>
<a name="l00331"></a>00331     <span class="keywordflow">if</span> (p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a> &gt; 0)
<a name="l00332"></a>00332     {
<a name="l00333"></a>00333         <span class="keywordflow">if</span> (p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a> == NULL)
<a name="l00334"></a>00334         {
<a name="l00335"></a>00335             <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00336"></a>00336         }
<a name="l00337"></a>00337         memcpy(&amp;p_encoded_data[*p_len], p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a>, p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>);
<a name="l00338"></a>00338         (*p_len) += p_manuf_sp_data-&gt;<a class="code" href="structble__advdata__manuf__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>;
<a name="l00339"></a>00339     }
<a name="l00340"></a>00340     
<a name="l00341"></a>00341     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00342"></a>00342 }
<a name="l00343"></a>00343 
<a name="l00344"></a>00344 
<a name="l00345"></a>00345 <span class="keyword">static</span> uint32_t service_data_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_advdata,
<a name="l00346"></a>00346                                     uint8_t *             p_encoded_data,
<a name="l00347"></a>00347                                     uint8_t *             p_len)
<a name="l00348"></a>00348 {
<a name="l00349"></a>00349     uint8_t i;
<a name="l00350"></a>00350 
<a name="l00351"></a>00351     <span class="comment">// Check parameter consistency</span>
<a name="l00352"></a>00352     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a9a43a30166d28f503400eb94a1b3f90c">p_service_data_array</a> == NULL)
<a name="l00353"></a>00353     {
<a name="l00354"></a>00354         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00355"></a>00355     }
<a name="l00356"></a>00356     
<a name="l00357"></a>00357     <span class="keywordflow">for</span> (i = 0; i &lt; p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a6b39f231af1d2402fa0bbd8135d4be1c">service_data_count</a>; i++)
<a name="l00358"></a>00358     {
<a name="l00359"></a>00359         <a class="code" href="structble__advdata__service__data__t.html" title="Service data structure.">ble_advdata_service_data_t</a> * p_service_data;
<a name="l00360"></a>00360         uint8_t                      data_size;
<a name="l00361"></a>00361         
<a name="l00362"></a>00362         p_service_data = &amp;p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a9a43a30166d28f503400eb94a1b3f90c">p_service_data_array</a>[i];
<a name="l00363"></a>00363         data_size      = <span class="keyword">sizeof</span>(<a class="code" href="group__ble__sdk__lib__util.html#gaa6f104ea023a4a6a56ef05f30b0cfdc3" title="type for holding an encoded (i.e. little endian) 16 bit unsigned integer.">uint16_le_t</a>) + p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>;
<a name="l00364"></a>00364     
<a name="l00365"></a>00365         <span class="comment">// Encode Length and AD Type</span>
<a name="l00366"></a>00366         p_encoded_data[(*p_len)++] = 1 + data_size;
<a name="l00367"></a>00367         p_encoded_data[(*p_len)++] = <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga91a9d7fd9b76c8ccfee764156286a8c4">BLE_GAP_AD_TYPE_SERVICE_DATA</a>;
<a name="l00368"></a>00368         
<a name="l00369"></a>00369         <span class="comment">// Encode service UUID</span>
<a name="l00370"></a>00370         (*p_len) += <a class="code" href="group__ble__sdk__lib__util.html#gab58c28346b89382397aa7a716bf9a178" title="Inline function for encoding a uint16 value.">uint16_encode</a>(p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a9b606b4ee380e181121922ff85a544b1">service_uuid</a>, &amp;p_encoded_data[*p_len]);
<a name="l00371"></a>00371         
<a name="l00372"></a>00372         <span class="comment">// Encode additional service data</span>
<a name="l00373"></a>00373         <span class="keywordflow">if</span> (p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a> &gt; 0)
<a name="l00374"></a>00374         {
<a name="l00375"></a>00375             <span class="keywordflow">if</span> (p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a> == NULL)
<a name="l00376"></a>00376             {
<a name="l00377"></a>00377                 <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00378"></a>00378             }
<a name="l00379"></a>00379             memcpy(&amp;p_encoded_data[*p_len], p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a>, p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>);
<a name="l00380"></a>00380             (*p_len) += p_service_data-&gt;<a class="code" href="structble__advdata__service__data__t.html#a52ebf147190879b03b057d7b80ec185d">data</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a>;
<a name="l00381"></a>00381         }
<a name="l00382"></a>00382     }
<a name="l00383"></a>00383     
<a name="l00384"></a>00384     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00385"></a>00385 }
<a name="l00386"></a>00386 
<a name="l00387"></a>00387 
<a name="l00388"></a>00388 <span class="keyword">static</span> uint32_t adv_data_encode(<span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_advdata,
<a name="l00389"></a>00389                                 uint8_t *             p_encoded_data,
<a name="l00390"></a>00390                                 uint8_t *             p_len)
<a name="l00391"></a>00391 {
<a name="l00392"></a>00392     uint32_t err_code = <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00393"></a>00393     
<a name="l00394"></a>00394     *p_len = 0;
<a name="l00395"></a>00395     
<a name="l00396"></a>00396     <span class="comment">// Encode name</span>
<a name="l00397"></a>00397     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a045ec5915c094e107ac24d185b83fa49">name_type</a> != <a class="code" href="group__ble__sdk__lib__advdata.html#gga03c5ccf232779001be9786021b1a563ba6e99a7c49e28bdae76c43edce53516f7">BLE_ADVDATA_NO_NAME</a>)
<a name="l00398"></a>00398     {
<a name="l00399"></a>00399         err_code = name_encode(p_advdata, p_encoded_data, p_len);
<a name="l00400"></a>00400         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00401"></a>00401         {
<a name="l00402"></a>00402             <span class="keywordflow">return</span> err_code;
<a name="l00403"></a>00403         }
<a name="l00404"></a>00404     }
<a name="l00405"></a>00405     
<a name="l00406"></a>00406     <span class="comment">// Encode appearance</span>
<a name="l00407"></a>00407     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#aff2bb3e4016b9a7b6cbcdd6e98feb719">include_appearance</a>)
<a name="l00408"></a>00408     {
<a name="l00409"></a>00409         err_code = appearance_encode(p_encoded_data, p_len);
<a name="l00410"></a>00410         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00411"></a>00411         {
<a name="l00412"></a>00412             <span class="keywordflow">return</span> err_code;
<a name="l00413"></a>00413         }
<a name="l00414"></a>00414     }
<a name="l00415"></a>00415     
<a name="l00416"></a>00416     <span class="comment">// Encode flags</span>
<a name="l00417"></a>00417     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a3ad6b2c5a983e0f2676c85c546ed47ae">flags</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a> &gt; 0)
<a name="l00418"></a>00418     {
<a name="l00419"></a>00419         err_code = uint8_array_encode(&amp;p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a3ad6b2c5a983e0f2676c85c546ed47ae">flags</a>,
<a name="l00420"></a>00420                                       <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gad4dccf6a7d878c19e731f74608e84d6c">BLE_GAP_AD_TYPE_FLAGS</a>,
<a name="l00421"></a>00421                                       p_encoded_data,
<a name="l00422"></a>00422                                       p_len);
<a name="l00423"></a>00423         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00424"></a>00424         {
<a name="l00425"></a>00425             <span class="keywordflow">return</span> err_code;
<a name="l00426"></a>00426         }
<a name="l00427"></a>00427     }
<a name="l00428"></a>00428     
<a name="l00429"></a>00429     <span class="comment">// Encode TX power level</span>
<a name="l00430"></a>00430     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#abf6287e8f903a4896561c23c6b2581ef">p_tx_power_level</a> != NULL)
<a name="l00431"></a>00431     {
<a name="l00432"></a>00432         err_code = tx_power_level_encode(*p_advdata-&gt;<a class="code" href="structble__advdata__t.html#abf6287e8f903a4896561c23c6b2581ef">p_tx_power_level</a>, p_encoded_data, p_len);
<a name="l00433"></a>00433         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00434"></a>00434         {
<a name="l00435"></a>00435             <span class="keywordflow">return</span> err_code;
<a name="l00436"></a>00436         }
<a name="l00437"></a>00437     }
<a name="l00438"></a>00438     
<a name="l00439"></a>00439     <span class="comment">// Encode &#39;more available&#39; uuid list</span>
<a name="l00440"></a>00440     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#aa3565098810fa07656d4f89eb202d5c5">uuids_more_available</a>.<a class="code" href="structble__advdata__uuid__list__t.html#a1cecc52d144b939f33a67c1d68363e99">uuid_cnt</a> &gt; 0)
<a name="l00441"></a>00441     {
<a name="l00442"></a>00442         err_code = uuid_list_encode(&amp;p_advdata-&gt;<a class="code" href="structble__advdata__t.html#aa3565098810fa07656d4f89eb202d5c5">uuids_more_available</a>,
<a name="l00443"></a>00443                                     <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga5a435197cb526f047615057c662cbeab">BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE</a>,
<a name="l00444"></a>00444                                     <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gaa2ed6e499fc1427a8ce9c48502092c1f">BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE</a>,
<a name="l00445"></a>00445                                     p_encoded_data,
<a name="l00446"></a>00446                                     p_len);
<a name="l00447"></a>00447         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00448"></a>00448         {
<a name="l00449"></a>00449             <span class="keywordflow">return</span> err_code;
<a name="l00450"></a>00450         }
<a name="l00451"></a>00451     }
<a name="l00452"></a>00452     
<a name="l00453"></a>00453     <span class="comment">// Encode &#39;complete&#39; uuid list</span>
<a name="l00454"></a>00454     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#af848e0d7e7334a53498e1e6c592fed90">uuids_complete</a>.<a class="code" href="structble__advdata__uuid__list__t.html#a1cecc52d144b939f33a67c1d68363e99">uuid_cnt</a> &gt; 0)
<a name="l00455"></a>00455     {
<a name="l00456"></a>00456         err_code = uuid_list_encode(&amp;p_advdata-&gt;<a class="code" href="structble__advdata__t.html#af848e0d7e7334a53498e1e6c592fed90">uuids_complete</a>,
<a name="l00457"></a>00457                                     <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gaa8f9c66d6590289f0b3e96965216a2ea">BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE</a>,
<a name="l00458"></a>00458                                     <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga06d8b368ebe6d72db8c32a22ae9a31f0">BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE</a>,
<a name="l00459"></a>00459                                     p_encoded_data,
<a name="l00460"></a>00460                                     p_len);
<a name="l00461"></a>00461         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00462"></a>00462         {
<a name="l00463"></a>00463             <span class="keywordflow">return</span> err_code;
<a name="l00464"></a>00464         }
<a name="l00465"></a>00465     }
<a name="l00466"></a>00466     
<a name="l00467"></a>00467     <span class="comment">// Encode &#39;solicited service&#39; uuid list</span>
<a name="l00468"></a>00468     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#ad0eb340db1e6871259649d5b5d6beb91">uuids_solicited</a>.<a class="code" href="structble__advdata__uuid__list__t.html#a1cecc52d144b939f33a67c1d68363e99">uuid_cnt</a> &gt; 0)
<a name="l00469"></a>00469     {
<a name="l00470"></a>00470         err_code = uuid_list_encode(&amp;p_advdata-&gt;<a class="code" href="structble__advdata__t.html#ad0eb340db1e6871259649d5b5d6beb91">uuids_solicited</a>,
<a name="l00471"></a>00471                                     <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#ga5299bd2766c19652565b6066e547019d">BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT</a>,
<a name="l00472"></a>00472                                     <a class="code" href="group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html#gacdbb35f283cba471a6fc6926fa6bf28f">BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT</a>,
<a name="l00473"></a>00473                                     p_encoded_data,
<a name="l00474"></a>00474                                     p_len);
<a name="l00475"></a>00475         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00476"></a>00476         {
<a name="l00477"></a>00477             <span class="keywordflow">return</span> err_code;
<a name="l00478"></a>00478         }
<a name="l00479"></a>00479     }
<a name="l00480"></a>00480     
<a name="l00481"></a>00481     <span class="comment">// Encode Slave Connection Interval Range</span>
<a name="l00482"></a>00482     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#aeaab56eae9e63162d5ff2c20eea5e2fa">p_slave_conn_int</a> != NULL)
<a name="l00483"></a>00483     {
<a name="l00484"></a>00484         err_code = conn_int_encode(p_advdata-&gt;<a class="code" href="structble__advdata__t.html#aeaab56eae9e63162d5ff2c20eea5e2fa">p_slave_conn_int</a>, p_encoded_data, p_len);
<a name="l00485"></a>00485         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00486"></a>00486         {
<a name="l00487"></a>00487             <span class="keywordflow">return</span> err_code;
<a name="l00488"></a>00488         }
<a name="l00489"></a>00489     }
<a name="l00490"></a>00490     
<a name="l00491"></a>00491     <span class="comment">// Encode Manufacturer Specific Data</span>
<a name="l00492"></a>00492     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#ac190b7d26572836c7a381ef0ad0343aa">p_manuf_specific_data</a> != NULL)
<a name="l00493"></a>00493     {
<a name="l00494"></a>00494         err_code = manuf_specific_data_encode(p_advdata-&gt;<a class="code" href="structble__advdata__t.html#ac190b7d26572836c7a381ef0ad0343aa">p_manuf_specific_data</a>,
<a name="l00495"></a>00495                                               p_encoded_data,
<a name="l00496"></a>00496                                               p_len);
<a name="l00497"></a>00497         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00498"></a>00498         {
<a name="l00499"></a>00499             <span class="keywordflow">return</span> err_code;
<a name="l00500"></a>00500         }
<a name="l00501"></a>00501     }
<a name="l00502"></a>00502     
<a name="l00503"></a>00503     <span class="comment">// Encode Service Data</span>
<a name="l00504"></a>00504     <span class="keywordflow">if</span> (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a6b39f231af1d2402fa0bbd8135d4be1c">service_data_count</a> &gt; 0)
<a name="l00505"></a>00505     {
<a name="l00506"></a>00506         err_code = service_data_encode(p_advdata, p_encoded_data, p_len);
<a name="l00507"></a>00507         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00508"></a>00508         {
<a name="l00509"></a>00509             <span class="keywordflow">return</span> err_code;
<a name="l00510"></a>00510         }
<a name="l00511"></a>00511     }
<a name="l00512"></a>00512     
<a name="l00513"></a>00513     <span class="keywordflow">return</span> err_code;
<a name="l00514"></a>00514 }
<a name="l00515"></a>00515 
<a name="l00516"></a>00516 
<a name="l00517"></a>00517 <span class="keyword">static</span> uint32_t advdata_check(<span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_advdata)
<a name="l00518"></a>00518 {
<a name="l00519"></a>00519     <span class="comment">// Flags must be included in advertising data, and the BR_EDR_NOT_SUPPORTED flag must be set</span>
<a name="l00520"></a>00520     <span class="keywordflow">if</span> (
<a name="l00521"></a>00521         (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a3ad6b2c5a983e0f2676c85c546ed47ae">flags</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a> == 0)
<a name="l00522"></a>00522         ||
<a name="l00523"></a>00523         (p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a3ad6b2c5a983e0f2676c85c546ed47ae">flags</a>.<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a> == NULL) 
<a name="l00524"></a>00524         ||
<a name="l00525"></a>00525         ((p_advdata-&gt;<a class="code" href="structble__advdata__t.html#a3ad6b2c5a983e0f2676c85c546ed47ae">flags</a>.<a class="code" href="structuint8__array__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a>[0] &amp; <a class="code" href="group___b_l_e___g_a_p___d_i_s_c___m_o_d_e_s.html#ga346a5b47f4b8f94a08f320a0d8c14c18">BLE_GAP_DISC_BR_EDR_NOT_SUPPORTED</a>) == 0)
<a name="l00526"></a>00526     )
<a name="l00527"></a>00527     {
<a name="l00528"></a>00528         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00529"></a>00529     }
<a name="l00530"></a>00530     
<a name="l00531"></a>00531     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00532"></a>00532 }
<a name="l00533"></a>00533 
<a name="l00534"></a>00534 
<a name="l00535"></a>00535 <span class="keyword">static</span> uint32_t srdata_check(<span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_srdata)
<a name="l00536"></a>00536 {
<a name="l00537"></a>00537     <span class="comment">// Flags shall not be included in the scan response data</span>
<a name="l00538"></a>00538     <span class="keywordflow">if</span> (p_srdata-&gt;<a class="code" href="structble__advdata__t.html#a3ad6b2c5a983e0f2676c85c546ed47ae">flags</a>.<a class="code" href="structuint8__array__t.html#aaba88b24a21a6c70c895c0d55f4a69a0">size</a> &gt; 0)
<a name="l00539"></a>00539     {
<a name="l00540"></a>00540         <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga0a5831cf5092e0dd43a01869676ee076" title="Invalid Parameter.">NRF_ERROR_INVALID_PARAM</a>;
<a name="l00541"></a>00541     }
<a name="l00542"></a>00542     
<a name="l00543"></a>00543     <span class="keywordflow">return</span> <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>;
<a name="l00544"></a>00544 }
<a name="l00545"></a>00545 
<a name="l00546"></a>00546 
<a name="l00547"></a><a class="code" href="group__ble__sdk__lib__advdata.html#ga180ff4057a0763688c734e98ab8d976b">00547</a> uint32_t <a class="code" href="group__ble__sdk__lib__advdata.html#ga180ff4057a0763688c734e98ab8d976b" title="Encodes and sets the advertising data and/or scan response data.">ble_advdata_set</a>(<span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_advdata, <span class="keyword">const</span> <a class="code" href="structble__advdata__t.html" title="Advertising data structure. This contains all options and data needed for encoding and setting the ad...">ble_advdata_t</a> * p_srdata)
<a name="l00548"></a>00548 {
<a name="l00549"></a>00549     uint32_t  err_code;
<a name="l00550"></a>00550     uint8_t   len_advdata = 0;
<a name="l00551"></a>00551     uint8_t   len_srdata = 0;
<a name="l00552"></a>00552     uint8_t   encoded_advdata[<a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>];
<a name="l00553"></a>00553     uint8_t   encoded_srdata[<a class="code" href="group___b_l_e___g_a_p.html#ga6d6ae1b58ea2dc641e4dc30e8e2dcc0b" title="Maximum size of advertising data in octets.">BLE_GAP_ADV_MAX_SIZE</a>];
<a name="l00554"></a>00554     uint8_t * p_encoded_advdata;
<a name="l00555"></a>00555     uint8_t * p_encoded_srdata;
<a name="l00556"></a>00556 
<a name="l00557"></a>00557     <span class="comment">// Encode advertising data (if supplied)</span>
<a name="l00558"></a>00558     <span class="keywordflow">if</span> (p_advdata != NULL)
<a name="l00559"></a>00559     {
<a name="l00560"></a>00560         err_code = advdata_check(p_advdata);
<a name="l00561"></a>00561         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00562"></a>00562         {
<a name="l00563"></a>00563             <span class="keywordflow">return</span> err_code;
<a name="l00564"></a>00564         }
<a name="l00565"></a>00565         
<a name="l00566"></a>00566         err_code = adv_data_encode(p_advdata, encoded_advdata, &amp;len_advdata);
<a name="l00567"></a>00567         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00568"></a>00568         {
<a name="l00569"></a>00569             <span class="keywordflow">return</span> err_code;
<a name="l00570"></a>00570         }
<a name="l00571"></a>00571         p_encoded_advdata = encoded_advdata;
<a name="l00572"></a>00572     }
<a name="l00573"></a>00573     <span class="keywordflow">else</span>
<a name="l00574"></a>00574     {
<a name="l00575"></a>00575         p_encoded_advdata = NULL;
<a name="l00576"></a>00576     }
<a name="l00577"></a>00577     
<a name="l00578"></a>00578     <span class="comment">// Encode scan response data (if supplied)</span>
<a name="l00579"></a>00579     <span class="keywordflow">if</span> (p_srdata != NULL)
<a name="l00580"></a>00580     {
<a name="l00581"></a>00581         err_code = srdata_check(p_srdata);
<a name="l00582"></a>00582         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00583"></a>00583         {
<a name="l00584"></a>00584             <span class="keywordflow">return</span> err_code;
<a name="l00585"></a>00585         }
<a name="l00586"></a>00586         
<a name="l00587"></a>00587         err_code = adv_data_encode(p_srdata, encoded_srdata, &amp;len_srdata);
<a name="l00588"></a>00588         <span class="keywordflow">if</span> (err_code != <a class="code" href="group__nrf__error.html#ga7e6367efeaac363d8cf024940b4ec123" title="Successful command.">NRF_SUCCESS</a>)
<a name="l00589"></a>00589         {
<a name="l00590"></a>00590             <span class="keywordflow">return</span> err_code;
<a name="l00591"></a>00591         }
<a name="l00592"></a>00592         p_encoded_srdata = encoded_srdata;
<a name="l00593"></a>00593     }
<a name="l00594"></a>00594     <span class="keywordflow">else</span>
<a name="l00595"></a>00595     {
<a name="l00596"></a>00596         p_encoded_srdata = NULL;
<a name="l00597"></a>00597     }
<a name="l00598"></a>00598 
<a name="l00599"></a>00599     <span class="comment">// Pass encoded advertising data and/or scan response data to the stack</span>
<a name="l00600"></a>00600     <span class="keywordflow">return</span> <a class="code" href="group___b_l_e___g_a_p.html#ga47c019be89deea8764244ff3b5f20184" title="Set or update advertisement data fields.">ble_gap_adv_data_set</a>(p_encoded_advdata, len_advdata, p_encoded_srdata, len_srdata);
<a name="l00601"></a>00601 }
</pre></div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>ble_advdata.c</b>      </li>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>


    <li class="footer">
      Copyright &copy 2006-2011 <a href="http://www.nordicsemi.no" style="text-decoration:none">Nordic Semiconductor</a>.
      All Rights Reserved.
      <a href="disclaimer.html">Disclaimer</a>
    </li>
   </ul>
 </div>


</body>
</html>
